The present invention relates to a system for executing applications that operate on a browser, particularly applications that provide a grid display such as a spreadsheet. The invention also relates to a control method and a program for the system.
In recent years, the so-called rich user interface techniques, utilizing functions of Dynamic HyperText Markup Language (DHTML) and JavaScript™ (JavaScript is a trademark of Sun Microsystems in the United States, other countries, or both) on a web browser, has been used increasingly. These techniques implement advanced functions of table (grid) form components, spreadsheet user interface components and the like (these components are collectively referred to as spreadsheet, below) with only the standard functions of a web browser.
As a rich user interface, a spreadsheet is created by use of TABLE elements which are predefined, for example, in HyperText Markup Language (HTML) to display a table form. In this case, a row and a column of the spreadsheet can be displayed by using, for example, a TR element and a TD element. In addition, a DIV element may be used to display a cell of the spreadsheet.
Conventional techniques for providing this type of rich user interface include Google Spreadsheets of Google, Inc. of the United States (for example, see beta version of spreadsheet application “Google Spreadsheets” of US Google Inc., [online], 7 Jun. 2006, INTERNET Watch, [searched on 28 Dec. 2007], Internet <URL: http://internet.watch.impress.co.jp/cda/news/2006/06/07/122 29.html>), and nitobi Grid of Nitobi Software Inc. of Canada. Google Spreadsheets enables the implementation of the spreadsheet function on a web browser. Nitobi Grid provides a grid-form display with a spreadsheet function on a web browser.
In a spreadsheet, the number of cells that can be displayed on a display device at once is at most around 600 to 1000, even with a relatively large and high-resolution display device. However, a business application or the like often requires a spreadsheet including approximately tens of thousands to a million cells. Accordingly, it is inevitable to scroll the screen of the display device when actually using a spreadsheet.
While spreadsheets can be provided in various methods using the rich user interface techniques, the following methods are mainly employed for scrolling the screen.
The first method is to generate a Document Object Model (DOM) structure of a whole spreadsheet before opening the spreadsheet in the first place. In this method, screen elements (such as TR elements and TD elements) are generated for all of the rows and columns of the spreadsheet, once the application is started. In scrolling a screen, among the previously-generated screen elements of the spreadsheet, screen elements corresponding to the display region are sequentially displayed.
The second method is to generate screen elements only for the region actually displayed at the time of initial display. In this case, every time the screen is scrolled to display new rows and columns, necessary DOM structures are sequentially added along with the scrolling operation, and thus screen elements are dynamically generated.
In the case in which a spreadsheet that operates on a web browser is provided by use of the rich user interface technique, screen elements may be generated for every row and column at the time of initial display, or may be generated for only the displayed region at the time of initial display, as mentioned above.
However, with the first method, screen elements are firstly generated for the whole spreadsheet regardless of the size of a displayed region. Hence, wait time for the initial display could be extremely long, depending on the size of the spreadsheet. Additionally, wait time may be also extremely long for an operation to change the configuration of the screen elements, such as changing the height or width of the rows or columns.
Meanwhile, with the second method, although only minimum time is required for initial display, screen elements are generated by adding DOM structures for every scroll of the screen. This inhibits smooth scrolling of the screen since the processing requires time. Additionally, since the DOM structure becomes larger along with the accumulation of generated rows and columns, the load for processing of additional generation of screen elements increases, which slows down the scroll speed even more.